/**
 * 此文件用于封装购物车的 API
 */

// 导入封装好的axios
import request from '@/utils/request'

/**
 * @desc 将数据添加到购物车
 * @param {*} id  商品id
 * @param {*} skuNum  商品数量
 * @returns Promise
 */
export const reqAddCart = (id, skuNum) => {
  return request.post(`/api/cart/addToCart/${id}/${skuNum}`)
}

/**
 * @desc 获取购物车列表
 * @returns Promise
 */
export const reqShopCartList = () => {
  return request.get('/api/cart/cartList')
}

/**
 * @desc 切换商品的选中状态
 * @param {*} skuId 商品的skuid
 * @param {*} isChecked 商品的选中状态 ,0表示为取消选中, 1为选中
 * @returns Promise
 */
export const reqCartChecked = (skuId, isChecked) => {
  return request.get(`/api/cart/checkCart/${skuId}/${isChecked}`)
}

/**
 * @desc 购物车商品全选
 * @param {*} isChecked 最新的状态
 * @param {Array} isChecked 代表修改的商品id
 * @returns Promise
 */
export const reqCangeAll = (skuIdList, isChecked) => {
  return request.post(`/api/cart/batchCheckCart/${isChecked}`, skuIdList)
}

/**
 * @desc 删除购物车单个商品
 * @param {*} skuId 商品id
 * @returns Promise
 */
export const deleteCartOne = (skuId) => {
  return request.delete(`/api/cart/deleteCart/${skuId}`)
}

/**
 * @desc 删除购物车已选中的商品
 * @returns Promise
 */
export const deleteCartAll = (skuIdList) => {
  return request.post('/api/cart/batchDeleteCart', skuIdList)
}
